#ifndef ASCII_H
#define ASCII_H

static const uint8_t ASCII[]  = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // SPACE [ASCII - 32]
    // TODO: Define
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // !
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // "
	0x00, 0x00, 0x28, 0x7c, 0x28, 0x7c, 0x28, 0x00,  // #
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // $
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // %
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // &
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // '
	0x00, 0x00, 0x7e, 0x7e, 0xc3, 0xc3, 0x00, 0x00,  // (
	0x00, 0x00, 0xc3, 0xc3, 0x7e, 0x7e, 0x00, 0x00,  // )
	0x00, 0x00, 0x28, 0x10, 0x7c, 0x10, 0x28, 0x00,  // *
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // +
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // -
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // .
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // /

	0x00, 0x7c, 0xfe, 0xb2, 0x9a, 0xfe, 0x7c, 0x00,  // 0  (16)
	0x00, 0x88, 0x8c, 0xfe, 0xfe, 0x80, 0x80, 0x00,  // 1
	0x00, 0xc4, 0xe6, 0xb2, 0x92, 0x9e, 0x8c, 0x00,  // 2
	0x00, 0x44, 0xc6, 0x92, 0x92, 0xfe, 0x6c, 0x00,  // 3
	0x00, 0x30, 0x38, 0x4c, 0xfe, 0xfe, 0x20, 0x00,  // 4
	0x00, 0x4e, 0xce, 0x8a, 0x8a, 0xfa, 0x72, 0x00,  // 5
	0x00, 0x78, 0xfc, 0x96, 0x92, 0xf2, 0x60, 0x00,  // 6
	0x00, 0x02, 0xe2, 0xf2, 0x1a, 0x0e, 0x06, 0x00,  // 7
	0x00, 0x6c, 0xfe, 0x92, 0x92, 0xfe, 0x6c, 0x00,  // 8
	0x00, 0x0c, 0x9e, 0x92, 0xd2, 0x7e, 0x3c, 0x00,  // 9
	// TODO: Define
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // :
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ;
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // <
	0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00,  // =
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // >
	0x00, 0x00, 0x04, 0x02, 0xa2, 0x12, 0x0c, 0x00,  // ?
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // @

	0x00, 0xfc, 0xfe, 0x22, 0x22, 0xfe, 0xfc, 0x00,  // A  (33)
	0x00, 0xfe, 0xfe, 0x92, 0x92, 0xfe, 0x6c, 0x00,  // B
	0x00, 0x7c, 0xfe, 0x82, 0x82, 0xc6, 0x44, 0x00,  // C
	0x00, 0xfe, 0xfe, 0x82, 0xc6, 0x7c, 0x38, 0x00,  // D
	0x00, 0xfe, 0xfe, 0x92, 0x92, 0x92, 0x82, 0x00,  // E
	0x00, 0xfe, 0xfe, 0x12, 0x12, 0x12, 0x02, 0x00,  // F
	0x00, 0x7c, 0xfe, 0x92, 0x92, 0xf6, 0xf4, 0x00,  // G
	0x00, 0xfe, 0xfe, 0x10, 0x10, 0xfe, 0xfe, 0x00,  // H
	0x00, 0x00, 0x82, 0xfe, 0xfe, 0x82, 0x00, 0x00,  // I
	0x00, 0x60, 0xe0, 0x81, 0xfe, 0x7e, 0x01, 0x00,  // J
	0x00, 0xfe, 0xfe, 0x38, 0x6c, 0xc6, 0x82, 0x00,  // K
	0x00, 0xfe, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x00,  // L
	0xfc, 0xfe, 0x0e, 0x3c, 0x3c, 0x0e, 0xfe, 0xfc,  // M
	0x00, 0xfe, 0xfe, 0x18, 0x30, 0xfe, 0xfe, 0x00,  // N
	0x00, 0x7c, 0xfe, 0x82, 0x82, 0xfe, 0x7c, 0x00,  // O
	0x00, 0xfe, 0xfe, 0x12, 0x12, 0x1e, 0x0c, 0x00,  // P
	0x00, 0x7c, 0xfe, 0xa2, 0xe2, 0xfe, 0xfc, 0x00,  // Q
	0x00, 0xfe, 0xfe, 0x32, 0x72, 0xde, 0x8c, 0x00,  // R
	0x00, 0x4c, 0xde, 0x92, 0x92, 0xf6, 0x64, 0x00,  // S
	0x00, 0x02, 0x02, 0xfe, 0xfe, 0x02, 0x02, 0x00,  // T
	0x00, 0x7e, 0xfe, 0x80, 0x80, 0xfe, 0x7e, 0x00,  // U
	0x00, 0x3e, 0x7e, 0xc0, 0xc0, 0x7e, 0x3e, 0x00,  // V
	0x7e, 0xfe, 0xc0, 0x70, 0x70, 0xc0, 0xfe, 0x7e,  // W
	0x00, 0xc6, 0xee, 0x38, 0x38, 0xee, 0xc6, 0x00,  // X
	0x00, 0x0e, 0x1e, 0xf0, 0xf0, 0x1e, 0x0e, 0x00,  // Y
	0x00, 0xc2, 0xe2, 0xb2, 0x9a, 0x8e, 0x83, 0x00,  // Z
};

#define ASCII_OFFSET 32

static const uint8_t DIGITS[] = {
    0x00, 0x7c, 0xfe, 0xb2, 0x9a, 0xfe, 0x7c, 0x00,  // 0
	0x00, 0x88, 0x8c, 0xfe, 0xfe, 0x80, 0x80, 0x00,  // 1
	0x00, 0xc4, 0xe6, 0xb2, 0x92, 0x9e, 0x8c, 0x00,  // 2
	0x00, 0x44, 0xc6, 0x92, 0x92, 0xfe, 0x6c, 0x00,  // 3
	0x00, 0x30, 0x38, 0x4c, 0xfe, 0xfe, 0x20, 0x00,  // 4
	0x00, 0x4e, 0xce, 0x8a, 0x8a, 0xfa, 0x72, 0x00,  // 5
	0x00, 0x78, 0xfc, 0x96, 0x92, 0xf2, 0x60, 0x00,  // 6
	0x00, 0x02, 0xe2, 0xf2, 0x1a, 0x0e, 0x06, 0x00,  // 7
	0x00, 0x6c, 0xfe, 0x92, 0x92, 0xfe, 0x6c, 0x00,  // 8
	0x00, 0x0c, 0x9e, 0x92, 0xd2, 0x7e, 0x3c, 0x00,  // 9
};

#endif
